Skip to content

impr(@typegpu/cli): Next.js template#2596

Open
cieplypolar wants to merge 7 commits into
feat/ascii-artfrom
impr/nextjs-template
Open

impr(@typegpu/cli): Next.js template#2596
cieplypolar wants to merge 7 commits into
feat/ascii-artfrom
impr/nextjs-template

Conversation

@cieplypolar

@cieplypolar cieplypolar commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Let's wait for #2588.

@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/typegpu@f815cab993323d55031ad78a28b80a3bf4b1862c
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@f815cab993323d55031ad78a28b80a3bf4b1862c
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@f815cab993323d55031ad78a28b80a3bf4b1862c
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@f815cab993323d55031ad78a28b80a3bf4b1862c
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@f815cab993323d55031ad78a28b80a3bf4b1862c

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
0 320 0 0

import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):

Click to reveal the results table (297 entries).
Test tsdown
d_Void.ts 87.40 kB ($${\color{red}+12093.7\%}$$)
d_sampler.ts 87.41 kB ($${\color{red}+11962.7\%}$$)
d_isPtr.ts 87.41 kB ($${\color{red}+11802.0\%}$$)
d_comparisonSampler.ts 87.42 kB ($${\color{red}+11787.8\%}$$)
d_isSizeAttrib.ts 87.41 kB ($${\color{red}+11771.4\%}$$)
d_isWgslArray.ts 87.41 kB ($${\color{red}+11771.2\%}$$)
d_isAlignAttrib.ts 87.41 kB ($${\color{red}+11755.8\%}$$)
d_isWgslStruct.ts 87.41 kB ($${\color{red}+11755.6\%}$$)
d_isAtomic.ts 87.41 kB ($${\color{red}+11755.1\%}$$)
d_isBuiltinAttrib.ts 87.42 kB ($${\color{red}+11724.7\%}$$)
d_isLocationAttrib.ts 87.42 kB ($${\color{red}+11709.2\%}$$)
d_isDecorated.ts 87.41 kB ($${\color{red}+11708.6\%}$$)
d_isInterpolateAttrib.ts 87.42 kB ($${\color{red}+11663.1\%}$$)
d_atomic.ts 87.41 kB ($${\color{red}+11389.6\%}$$)
d_ptrHandle.ts 87.41 kB ($${\color{red}+10417.9\%}$$)
d_ptrUniform.ts 87.41 kB ($${\color{red}+10405.6\%}$$)
d_ptrStorage.ts 87.41 kB ($${\color{red}+10356.5\%}$$)
d_ptrPrivate.ts 87.41 kB ($${\color{red}+10332.2\%}$$)
d_ptrFn.ts 87.41 kB ($${\color{red}+10319.4\%}$$)
d_ptrWorkgroup.ts 87.41 kB ($${\color{red}+10308.1\%}$$)
d_textureExternal.ts 87.42 kB ($${\color{red}+10153.5\%}$$)
d_textureStorage1d.ts 87.42 kB ($${\color{red}+8532.0\%}$$)
d_textureStorage2d.ts 87.42 kB ($${\color{red}+8532.0\%}$$)
d_textureStorage3d.ts 87.42 kB ($${\color{red}+8532.0\%}$$)
d_textureStorage2dArray.ts 87.42 kB ($${\color{red}+8385.2\%}$$)
d_isDisarray.ts 87.41 kB ($${\color{red}+7758.5\%}$$)
d_isUnstruct.ts 87.41 kB ($${\color{red}+7758.5\%}$$)
d_isLooseDecorated.ts 87.42 kB ($${\color{red}+7711.0\%}$$)
d_isLooseData.ts 87.41 kB ($${\color{red}+7447.1\%}$$)
d_isWgslData.ts 87.41 kB ($${\color{red}+6569.7\%}$$)
d_unstruct.ts 87.41 kB ($${\color{red}+5547.1\%}$$)
d_isData.ts 87.41 kB ($${\color{red}+4735.4\%}$$)
d_deepEqual.ts 87.41 kB ($${\color{red}+3886.9\%}$$)
d_struct.ts 87.41 kB ($${\color{red}+2324.9\%}$$)
d_ref.ts 87.40 kB ($${\color{red}+1725.4\%}$$)
std_discard.ts 103.14 kB ($${\color{red}+624.7\%}$$)
std_copy.ts 103.13 kB ($${\color{red}+612.6\%}$$)
std_arrayLength.ts 103.14 kB ($${\color{red}+612.4\%}$$)
std_isBeingTranspiled.ts 103.15 kB ($${\color{red}+610.8\%}$$)
std_getTargetShaderLanguage.ts 103.15 kB ($${\color{red}+607.7\%}$$)
std_extensionEnabled.ts 103.15 kB ($${\color{red}+605.2\%}$$)
std_range.ts 103.13 kB ($${\color{red}+592.4\%}$$)
std_dpdx.ts 103.13 kB ($${\color{red}+584.1\%}$$)
std_fwidthCoarse.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_dpdxCoarse.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_dpdyCoarse.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_fwidthFine.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_dpdxFine.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_dpdyFine.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_fwidth.ts 103.14 kB ($${\color{red}+583.9\%}$$)
std_dpdy.ts 103.13 kB ($${\color{red}+583.9\%}$$)
d_bool.ts 87.40 kB ($${\color{red}+571.4\%}$$)
d_f16.ts 87.40 kB ($${\color{red}+571.4\%}$$)
d_f32.ts 87.40 kB ($${\color{red}+571.4\%}$$)
d_i32.ts 87.40 kB ($${\color{red}+571.4\%}$$)
d_u32.ts 87.40 kB ($${\color{red}+571.4\%}$$)
d_u16.ts 87.40 kB ($${\color{red}+570.2\%}$$)
std_atomicLoad.ts 103.14 kB ($${\color{red}+551.5\%}$$)
std_textureBarrier.ts 103.14 kB ($${\color{red}+551.2\%}$$)
std_atomicStore.ts 103.14 kB ($${\color{red}+551.2\%}$$)
std_workgroupBarrier.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_storageBarrier.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicAdd.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicAnd.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicMax.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicMin.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicSub.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicXor.ts 103.14 kB ($${\color{red}+551.0\%}$$)
std_atomicOr.ts 103.14 kB ($${\color{red}+551.0\%}$$)
d_textureDepth2d.ts 87.41 kB ($${\color{red}+549.3\%}$$)
d_textureDepthCube.ts 87.42 kB ($${\color{red}+549.1\%}$$)
d_texture1d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture2d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture3d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_textureDepth2dArray.ts 87.42 kB ($${\color{red}+548.5\%}$$)
d_textureCube.ts 87.41 kB ($${\color{red}+548.5\%}$$)
d_textureDepthCubeArray.ts 87.42 kB ($${\color{red}+548.3\%}$$)
d_textureDepthMultisampled2d.ts 87.43 kB ($${\color{red}+548.2\%}$$)
d_texture2dArray.ts 87.41 kB ($${\color{red}+548.0\%}$$)
d_textureCubeArray.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_textureMultisampled2d.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_disarrayOf.ts 87.41 kB ($${\color{red}+480.3\%}$$)
d_vec2b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
std_subgroupAdd.ts 103.14 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcastFirst.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupExclusiveAdd.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupExclusiveMul.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupInclusiveAdd.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupInclusiveMul.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupShuffleDown.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupShuffleXor.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupBroadcast.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupShuffleUp.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupShuffle.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupBallot.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupElect.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupAll.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupAnd.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupAny.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupMax.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupMin.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupMul.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupXor.ts 103.14 kB ($${\color{red}+329.2\%}$$)
std_subgroupOr.ts 103.14 kB ($${\color{red}+329.2\%}$$)
d_formatToWGSLType.ts 87.42 kB ($${\color{red}+317.4\%}$$)
d_uint8.ts 87.41 kB ($${\color{red}+317.3\%}$$)
d_unorm10_10_10_2.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_unorm8x4_bgra.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_packedFormats.ts 87.41 kB ($${\color{red}+316.9\%}$$)
d_isPackedData.ts 87.41 kB ($${\color{red}+316.0\%}$$)
std_textureDimensions.ts 103.15 kB ($${\color{red}+300.1\%}$$)
std_textureGather.ts 103.14 kB ($${\color{red}+300.0\%}$$)
std_textureSampleBaseClampToEdge.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompareLevel.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompare.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureSampleLevel.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureSampleBias.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureSampleGrad.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureSample.ts 103.14 kB ($${\color{red}+299.9\%}$$)
std_textureStore.ts 103.14 kB ($${\color{red}+299.9\%}$$)
std_textureLoad.ts 103.14 kB ($${\color{red}+299.9\%}$$)
d_alignmentOf.ts 87.41 kB ($${\color{red}+299.2\%}$$)
std_translation4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_rotationX4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_rotationY4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_rotationZ4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_identity2.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_identity3.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_identity4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
std_scaling4.ts 103.14 kB ($${\color{red}+281.5\%}$$)
d_isBuiltin.ts 87.41 kB ($${\color{red}+255.1\%}$$)
d_sizeOf.ts 87.41 kB ($${\color{red}+254.3\%}$$)
d_isContiguous.ts 87.41 kB ($${\color{red}+254.3\%}$$)
d_getLongestContiguousPrefix.ts 87.43 kB ($${\color{red}+254.2\%}$$)
d_arrayOf.ts 87.41 kB ($${\color{red}+233.4\%}$$)
d_size.ts 87.40 kB ($${\color{red}+231.6\%}$$)
d_align.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_location.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_interpolate.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_invariant.ts 87.41 kB ($${\color{red}+227.0\%}$$)
d_mat4x4f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_mat2x2f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_mat3x3f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_matToArray.ts 87.41 kB ($${\color{red}+221.8\%}$$)
d_builtin.ts 87.41 kB ($${\color{red}+204.8\%}$$)
std_unpack2x16float.ts 103.14 kB ($${\color{red}+186.6\%}$$)
std_unpack4x8unorm.ts 103.14 kB ($${\color{red}+186.6\%}$$)
std_pack2x16float.ts 103.14 kB ($${\color{red}+186.6\%}$$)
std_pack4x8unorm.ts 103.14 kB ($${\color{red}+186.6\%}$$)
std_bitcastU32toF32.ts 103.14 kB ($${\color{red}+133.2\%}$$)
std_bitcastU32toI32.ts 103.14 kB ($${\color{red}+133.2\%}$$)
std_neg.ts 103.13 kB ($${\color{red}+113.1\%}$$)
std_bitShiftRight.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_bitShiftLeft.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_add.ts 103.13 kB ($${\color{red}+113.0\%}$$)
std_div.ts 103.13 kB ($${\color{red}+113.0\%}$$)
std_mod.ts 103.13 kB ($${\color{red}+113.0\%}$$)
std_mul.ts 103.13 kB ($${\color{red}+113.0\%}$$)
std_sub.ts 103.13 kB ($${\color{red}+113.0\%}$$)
std_translate4.ts 103.14 kB ($${\color{red}+109.8\%}$$)
std_rotateX4.ts 103.14 kB ($${\color{red}+109.8\%}$$)
std_scale4.ts 103.14 kB ($${\color{red}+109.8\%}$$)
std_rotateY4.ts 103.14 kB ($${\color{red}+109.7\%}$$)
std_rotateZ4.ts 103.14 kB ($${\color{red}+109.7\%}$$)
d_memoryLayoutOf.ts 87.41 kB ($${\color{red}+108.2\%}$$)
std_and.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_or.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_select.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.13 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_any.ts 103.13 kB ($${\color{red}+99.1\%}$$)
std_ge.ts 103.13 kB ($${\color{red}+99.1\%}$$)
std_gt.ts 103.13 kB ($${\color{red}+99.1\%}$$)
std_le.ts 103.13 kB ($${\color{red}+99.1\%}$$)
std_dot4U8Packed.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.13 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.15 kB ($${\color{red}+56.1\%}$$)
std_firstLeadingBit.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_fract.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_frexp.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_modf.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_quantizeToF16.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_mix.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_countOneBits.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_dot4I8Packed.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_determinant.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_extractBits.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_faceForward.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_inverseSqrt.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_reverseBits.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_insertBits.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_smoothstep.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_normalize.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_transpose.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_saturate.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_degrees.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_radians.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_reflect.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_refract.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_acosh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_asinh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_atan2.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_atanh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_clamp.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_cross.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_floor.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_ldexp.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_round.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_trunc.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_acos.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_asin.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_atan.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_ceil.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_cosh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_exp2.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_log2.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_sign.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_sinh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_sqrt.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_step.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_tanh.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_abs.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_cos.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_exp.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_fma.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_log.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_max.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_min.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_pow.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_sin.ts 103.13 kB ($${\color{red}+56.1\%}$$)
std_tan.ts 103.13 kB ($${\color{red}+56.1\%}$$)
common_fullScreenTriangle.ts 57.18 kB ($${\color{red}+41.5\%}$$)
common_writeSoA.ts 57.17 kB ($${\color{red}+38.6\%}$$)
STATIC_allImports.ts 287.20 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.40 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.13 kB ($${\color{green}-2.7\%}$$)

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.88, 1.72, 3.47, 5.59, 7.10, 9.37, 18.98, 23.02]
  line [0.92, 1.78, 3.92, 5.29, 6.33, 9.91, 20.72, 22.76]
  line [0.86, 1.64, 3.46, 5.90, 6.46, 9.91, 19.29, 22.01]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.27, 0.50, 0.68, 0.81, 1.09, 1.13, 1.31, 1.48]
  line [0.28, 0.55, 0.68, 0.80, 1.06, 1.14, 1.33, 1.48]
  line [0.33, 0.51, 0.61, 0.71, 0.99, 0.99, 1.22, 1.37]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.86, 1.90, 4.12, 5.57, 10.81, 23.36, 48.97, 101.01]
  line [0.76, 1.78, 4.39, 5.78, 11.03, 23.59, 49.04, 103.72]
  line [0.98, 2.35, 4.55, 5.67, 10.95, 23.14, 50.19, 98.88]
Loading

@cieplypolar cieplypolar force-pushed the impr/nextjs-template branch from e108045 to 1dc6371 Compare July 7, 2026 17:14
@cieplypolar cieplypolar changed the base branch from main to feat/ascii-art July 7, 2026 17:15
@cieplypolar cieplypolar marked this pull request as ready for review July 7, 2026 17:16

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Two template correctness issues need fixing before this can land: the root page.tsx declares a generateStaticParams() function even though it is not a dynamic route, and SVG imports from public/ are accessed as if they were Next.js StaticImageData objects (they are URL strings at runtime).

Reviewed changes — new nextjs-bare template for @typegpu/cli using Next.js 16 App Router, static export, Tailwind v4, and @typegpu/react.

  • Added nextjs-bare option to PROJECT_TEMPLATES in options.ts.
  • Added the full template scaffold: page layout, TypeGPU shader component, Next.js/Babel/PostCSS/Tailwind/TypeScript/Oxlint configs, static assets, editor settings, and agent instructions.

ℹ️ Nitpicks

  • .nvmrc says Node 24 but _package.json uses @types/node ^20; template-vite-react uses ^24.12.3.
  • oxlint.config.ts does not set browser or node env. Consider adding browser: true and node: true so babel.config.js CommonJS globals and browser globals lint correctly.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

Comment thread packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx Outdated
Comment thread packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

The latest commit removes the invalid generateStaticParams() export, but the SVG logo issue raised in the previous review is still present.

Reviewed changes — the follow-up commit addressed one correctness issue in the template's root page, while an earlier image-import issue remains unresolved.

  • Removed generateStaticParams() from app/page.tsx — the root page is not a dynamic route, so the function was invalid; output: 'export' already produces a static /.
  • SVG logo imports still rely on .src — the public/ SVG imports are not StaticImageData objects in Next.js, so the .src access returns undefined at runtime. See the inline comment for evidence and the required fix.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

{/* TypeGPU */}
<div className="min-w-0 flex-1 border-r border-border p-8 max-[1024px]:border-r-0 max-[1024px]:border-b max-[1024px]:px-5 max-[1024px]:py-6">
<picture className="mb-2 flex h-7 items-center max-[1024px]:h-6 max-[1024px]:justify-center">
<source srcSet={typegpuLogoDark.src} media="(prefers-color-scheme: dark)" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ typegpuLogoDark.src is undefined at runtime. Next.js does not expose a StaticImageData object for *.svg imports; its image-types/global.d.ts declares *.svg as any, and the runtime default import is the asset URL string. When output: 'export' builds the template, the logos will not render.

Technical details
# SVG imports from `public/` are URL strings, not objects

## Affected sites
- `packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx:5-7` — SVG imports from `public/`
- `packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx:28``<source srcSet={typegpuLogoDark.src}>`
- `packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx:31``<img src={typegpuLogoLight.src}>`
- `packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx:99``<img src={nextLogo.src}>`
- `packages/typegpu-cli/templates/template-nextjs-bare/app/page.tsx:119``<img src={nextLogo.src}>`

## Required outcome
The logos resolve to valid public URLs after `next build`.

## Suggested approach
Remove the three SVG imports and reference the files by their absolute public paths:
- `/typegpu-logo-dark.svg`
- `/typegpu-logo-light.svg`
- `/next.svg`

## Evidence
- Next.js recommends referencing `public` files from the base URL rather than importing them ([public folder docs](https://nextjs.org/docs/app/api-reference/file-conventions/public-folder)).
- Next.js declares only raster image imports as `StaticImageData`; `*.svg` is typed as `any` specifically to avoid conflicts with `@svgr/webpack` and similar plugins ([image-types/global.d.ts](https://unpkg.com/next@16.2.7/image-types/global.d.ts)).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant